}
static void
-css_provider_push_scope (GtkCssProvider *css_provider,
- ParserScope scope)
+gtk_css_scanner_push_scope (GScanner *scanner,
+ ParserScope scope)
{
GtkCssScannerPrivate *priv;
- priv = css_provider->priv->scanner->user_data;
+ priv = scanner->user_data;
priv->state = g_slist_prepend (priv->state, GUINT_TO_POINTER (scope));
- scanner_apply_scope (css_provider->priv->scanner, scope);
+ scanner_apply_scope (scanner, scope);
}
-static ParserScope
-css_provider_pop_scope (GtkCssProvider *css_provider)
+static void
+gtk_css_scanner_pop_scope (GScanner *scanner)
{
GtkCssScannerPrivate *priv;
ParserScope scope = SCOPE_SELECTOR;
- priv = css_provider->priv->scanner->user_data;
+ priv = scanner->user_data;
if (!priv->state)
{
g_warning ("Push/pop calls to parser scope aren't paired");
- scanner_apply_scope (css_provider->priv->scanner, SCOPE_SELECTOR);
- return SCOPE_SELECTOR;
+ scanner_apply_scope (scanner, SCOPE_SELECTOR);
+ return;
}
priv->state = g_slist_delete_link (priv->state, priv->state);
if (priv->state)
scope = GPOINTER_TO_INT (priv->state->data);
- scanner_apply_scope (css_provider->priv->scanner, scope);
-
- return scope;
+ scanner_apply_scope (scanner, scope);
}
static void
if (scanner->token != G_TOKEN_LEFT_PAREN)
return G_TOKEN_LEFT_PAREN;
- css_provider_push_scope (css_provider, SCOPE_NTH_CHILD);
+ gtk_css_scanner_push_scope (scanner, SCOPE_NTH_CHILD);
g_scanner_get_next_token (scanner);
if (scanner->token != G_TOKEN_SYMBOL)
if (scanner->token != G_TOKEN_RIGHT_PAREN)
return G_TOKEN_RIGHT_PAREN;
- css_provider_pop_scope (css_provider);
+ gtk_css_scanner_pop_scope (scanner);
}
else if (symbol == SYMBOL_FIRST_CHILD)
*flags = GTK_REGION_FIRST;
ParserSymbol symbol;
g_scanner_get_next_token (scanner);
- css_provider_push_scope (css_provider, SCOPE_PSEUDO_CLASS);
+ gtk_css_scanner_push_scope (scanner, SCOPE_PSEUDO_CLASS);
/* Check for the next token being nth-child, parse in that
* case, and fallback into common state parsing if not.
if ((token = parse_nth_child (css_provider, scanner, &flags)) != G_TOKEN_NONE)
return token;
- css_provider_pop_scope (css_provider);
+ gtk_css_scanner_pop_scope (scanner);
}
else
{
- css_provider_pop_scope (css_provider);
+ gtk_css_scanner_pop_scope (scanner);
selector_path_prepend_region (path, region_name, 0);
g_free (region_name);
break;
if (selector_path_depth (path) == 0)
selector_path_prepend_glob (path);
- css_provider_push_scope (css_provider, SCOPE_PSEUDO_CLASS);
+ gtk_css_scanner_push_scope (scanner, SCOPE_PSEUDO_CLASS);
while (scanner->token == ':')
{
g_scanner_get_next_token (scanner);
}
- css_provider_pop_scope (css_provider);
+ gtk_css_scanner_pop_scope (scanner);
}
return G_TOKEN_NONE;
priv = css_provider->priv;
- css_provider_push_scope (css_provider, SCOPE_SELECTOR);
+ gtk_css_scanner_push_scope (scanner, SCOPE_SELECTOR);
/* Handle directives */
if (scanner->token == G_TOKEN_IDENTIFIER &&
}
color_name = g_strdup (scanner->value.v_identifier);
- css_provider_push_scope (css_provider, SCOPE_VALUE);
+ gtk_css_scanner_push_scope (scanner, SCOPE_VALUE);
g_scanner_get_next_token (scanner);
if (scanner->token != G_TOKEN_IDENTIFIER)
g_hash_table_insert (priv->symbolic_colors, color_name, color);
- css_provider_pop_scope (css_provider);
+ gtk_css_scanner_pop_scope (scanner);
g_scanner_get_next_token (scanner);
if (scanner->token != ';')
char *dirname;
GError *error = NULL;
- css_provider_push_scope (css_provider, SCOPE_VALUE);
+ gtk_css_scanner_push_scope (scanner, SCOPE_VALUE);
g_scanner_get_next_token (scanner);
if (scanner->token == G_TOKEN_IDENTIFIER &&
return G_TOKEN_IDENTIFIER;
}
- css_provider_pop_scope (css_provider);
+ gtk_css_scanner_pop_scope (scanner);
g_scanner_get_next_token (scanner);
if (scanner->token != ';')
if (scanner->token != G_TOKEN_LEFT_CURLY)
return G_TOKEN_LEFT_CURLY;
- css_provider_push_scope (css_provider, SCOPE_BINDING_SET);
+ gtk_css_scanner_push_scope (scanner, SCOPE_BINDING_SET);
g_scanner_get_next_token (scanner);
do
}
while (scanner->token != G_TOKEN_RIGHT_CURLY);
- css_provider_pop_scope (css_provider);
+ gtk_css_scanner_pop_scope (scanner);
g_scanner_get_next_token (scanner);
return G_TOKEN_NONE;
priv->cur_selectors = g_slist_prepend (priv->cur_selectors, selector);
}
- css_provider_pop_scope (css_provider);
+ gtk_css_scanner_pop_scope (scanner);
if (scanner->token != G_TOKEN_LEFT_CURLY)
return G_TOKEN_LEFT_CURLY;
/* Declarations parsing */
- css_provider_push_scope (css_provider, SCOPE_DECLARATION);
+ gtk_css_scanner_push_scope (scanner, SCOPE_DECLARATION);
g_scanner_get_next_token (scanner);
goto find_end_of_declaration;
}
- css_provider_push_scope (css_provider, SCOPE_VALUE);
+ gtk_css_scanner_push_scope (scanner, SCOPE_VALUE);
g_scanner_get_next_token (scanner);
if (scanner->token != G_TOKEN_IDENTIFIER)
scanner->token == G_TOKEN_STRING ? GTK_CSS_PROVIDER_ERROR_PROPERTY_VALUE
: GTK_CSS_PROVIDER_ERROR_SYNTAX,
"Not a property value");
- css_provider_pop_scope (css_provider);
+ gtk_css_scanner_pop_scope (scanner);
goto find_end_of_declaration;
}
value_str = scanner->value.v_identifier;
g_strchomp (value_str);
- css_provider_pop_scope (css_provider);
+ gtk_css_scanner_pop_scope (scanner);
g_scanner_peek_next_token (scanner);
if (scanner->next_token != ';' &&
g_scanner_get_next_token (scanner);
}
- css_provider_pop_scope (css_provider);
+ gtk_css_scanner_pop_scope (scanner);
return G_TOKEN_NONE;
}